在流行的开源 Rasa 框架中发现了一个严重漏洞 (CVE-2024-49375)。该漏洞的 CVSS 得分为 9.1,允许攻击者通过远程加载恶意制作的模型实现远程代码执行 (RCE)。
Rasa 广泛用于开发基于文本和语音的对话式人工智能应用,下载量已超过 2500 万次,已成为机器学习部署的基石。
根据 Rasa 的安全公告,该漏洞同时影响 Rasa Pro 和 Rasa Open Source。问题的根源在于使用 -enable-api 标志启用 HTTP API 时。正如该公告所解释的,“攻击者如果有能力将恶意制作的模型远程加载到 Rasa 实例中,就可以实现远程代码执行。”
公告强调了漏洞可被利用的两种情况:
- 未经验证的 RCE: 当 Rasa HTTP API 未配置身份验证或安全控制时,就会出现这种情况。
- 验证的 RCE: 这需要攻击者拥有有效的身份验证令牌或 JSON Web 标记 (JWT) 才能与 Rasa API 交互。
Rasa 已发布补丁来解决此关键问题。强烈建议用户升级到以下版本:
- Rasa 专业版: 3.8.18, 3.9.16, 和 3.10.12
- Rasa 开放源代码: 3.6.21
要完全缓解 CVE-2024-49375 漏洞,用户还必须使用已打补丁的版本重新训练模型。Rasa 建议开发人员检查其自定义组件,尤其是那些继承自受影响组件(如 CountVectorFeaturizer、DIETClassifier 和 TEDPolicy)的组件,以确保与更新软件的兼容性。
对于无法立即应用更新的用户,该公告提供了缓解策略:
- 启用 API 身份验证: 按照 Rasa 文档中的描述为 Rasa HTTP API 配置身份验证。
- 安全源模型: 仅从可信来源加载模型并验证文件哈希值以防止篡改。
- 限制 API 访问: 使用最小特权原则应用访问控制,以限制与 Rasa API 的交互。
Rasa 计划在未来版本中通过要求 API 访问验证来增强安全性。正如公告所指出的,“Rasa Pro 的未来版本将取消在未启用任何身份验证方法的情况下启用 API 的功能。”